/*
 * - Cambios de constraints para comftodin
 * - Funcion para Leyenda en facturas A de Inscriptos a Monotributistas
 */

-- ===================================================================================
-- CONSTRAINTS para comftodin
-- ===================================================================================

CREATE OR REPLACE FUNCTION public.corregir_negrita(template character varying)
  RETURNS character varying AS
$BODY$
DECLARE
inicio  integer;
fin     integer;
resto   varchar;
grupo   varchar;
largo_grupo_original integer;
BEGIN
  inicio := strpos(template,'object ppDBText27818: TppDBText');
  if inicio > 0 then 
    resto  := substring(template, inicio, length(template));
    fin    := strpos(resto,'end' || chr(13)) + 4;
    grupo  := substring(resto, 1, fin);
    largo_grupo_original := length(grupo);
    grupo  := replace(grupo, 'Font.Style = [fsBold]', 'Font.Style = []');
    return substring(template, 1, inicio - 1) || grupo || substring(template, inicio + largo_grupo_original, length(template));
 else
    return template;   
 end if;
 
END;
$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;
ALTER FUNCTION public.corregir_negrita(varchar)
  OWNER TO abacouser;


update comfto set template = public.corregir_negrita(template), mailtemplate = public.corregir_negrita(mailtemplate)
where strpos(template, 'codigoQR') > 0;

DROP FUNCTION public.corregir_negrita(varchar);


/*
 * -- Corrección del texto de la ley de la migración 458.00
*/

-- ===================================================================================
-- funcion para campos dinamicos que recuperan la leyenda Ley 27818 para facturas A de Incscriptos a Monotributistas
-- ===================================================================================

CREATE OR REPLACE FUNCTION afip.get_leyenda_ley_27818(integer)
  RETURNS character varying AS
$BODY$
DECLARE
pIdcomm			ALIAS FOR $1;

vLey_Leyenda		character varying;
vLey_InicioVigencia     timestamp;
vLetra			character varying;
vPadFiscal_codpadiva	character varying;

BEGIN

-- 14/06/2021: Para la impresion de una leyenda en cada factura de venta desde un Responsable Inscripto hacia un Monotributista.
-- Por la ley 27.818 los Monotributistas que efectuen una compra a un Resp.Inscripto, se pueden tomar el iva
-- o parte de el en funcion de ciertas condiciones.
vLey_Leyenda:= 'El crédito fiscal discriminado en el presente comprobante, solo podrá ser computado a efectos del ' ||
	       'Regimen de Sostenimiento e Inclusión Fiscal para Pequeños Contribuyentes de la Ley Nro.27.618';

vLey_InicioVigencia := '2021-07-01';
-- 
SELECT comm.letra, pad.codpadiva INTO vletra, vPadFiscal_codpadiva
FROM comm JOIN pad ON comm.idpadfiscal = pad.id 
WHERE comm.id = pidcomm AND comm.fecha >= vLey_inicioVigencia 
LIMIT 1;       
			
IF vLetra = 'A' AND vPadFiscal_codpadiva = 'M' THEN
	RETURN vLey_Leyenda;
ELSE
	RETURN '';
END IF;

END;
$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;
ALTER FUNCTION afip.get_leyenda_ley_27818(integer) OWNER TO abacouser;

CREATE OR REPLACE FUNCTION afip.get_leyenda_ley_27818_FIS_0(integer)
  RETURNS character varying AS
$BODY$
DECLARE
pIdcomm			ALIAS FOR $1;

vLey_Leyenda		character varying;
vLey_InicioVigencia     timestamp;
vLetra			character varying;
vPadFiscal_codpadiva	character varying;

BEGIN

-- 14/06/2021: Para la impresion de una leyenda en cada factura de venta desde un Responsable Inscripto hacia un Monotributista.
-- Por la ley 27.818 los Monotributistas que efectuen una compra a un Resp.Inscripto, se pueden tomar el iva
-- o parte de el en funcion de ciertas condiciones.
vLey_Leyenda:= 'El crédito fiscal discriminado solo podrá ser computado a efectos del Régimen de Sostenimiento e Inc' || 
               'lusión Fiscal p/Pequeños Contribuyentes de la Ley Nro.27.618';
               
 vLey_InicioVigencia := '2021-07-01';
-- 
SELECT comm.letra, pad.codpadiva INTO vletra, vPadFiscal_codpadiva
FROM comm JOIN pad ON comm.idpadfiscal = pad.id 
WHERE comm.id = pidcomm AND comm.fecha >= vLey_inicioVigencia 
LIMIT 1;       
			
IF vLetra = 'A' AND vPadFiscal_codpadiva = 'M' THEN
	RETURN vLey_Leyenda;
ELSE
	RETURN '';
END IF;

END;
$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;
ALTER FUNCTION afip.get_leyenda_ley_27818_FIS_0(integer) OWNER TO abacouser;

-- ==================================
   SELECT aaVersion('460.01','460.00');
-- ==================================
